// 获取各商品价格字符并将各价格相加为数字：
// 方法1：利用正则表达式选出所有￥在进行replace
// var reg = new RegExp('￥', 'g');
// console.log(priceStr.replace(reg, '+'));
// $('.price-sum').children('em').text('￥' + eval(priceStr.replace(reg, '+')).toFixed(2))
// 方法2：利用split分割为数组(去掉￥)，再用join转换为字符串(添加+)
// console.log(priceStr.split('￥').join('+')); 
// $('.price-sum').children('em').text('￥'+eval(priceStr.split('￥').join('+')).toFixed(2))

$(function () {
    var priceSum = Number($('.check-cart-item').find('.p-sum').text().substr(1));   // 总价
    var numSum = Number($('.check-cart-item').find('.itxt').val());     // 总数

    function getSum(flag) {
        priceSum = 0;
        numSum = 0;
        if (flag == 1) {
            // 计算总价
            priceSum = $('.j-checkbox:checked').parent().siblings('.p-sum').text();
            priceSum = eval(priceSum.split('￥').join('+')).toFixed(2);
            // 计算总数
            $('.j-checkbox:checked').parents('.cart-item').find('.itxt').each(function () {
                numSum += Number($(this).val());
            })
        }
        $('.price-sum').children('em').text(priceSum);
        $('.amount-sum').children('em').text(numSum);
    }

    // 点击全选或全不选
    $('.checkall').change(function () {
        var checkall = $(this).prop('checked');
        // 小复选框变化
        $('.j-checkbox, .checkall').prop('checked', checkall);
        checkall ? $('.cart-item').addClass('check-cart-item') : $('.cart-item').removeClass('check-cart-item');
    })

    // 点击小复选框
    $('.j-checkbox').change(function () {
        let checknum = $('.j-checkbox:checked').length;
        // 点击小复选框实现全选或非全选，利用:checked返回被选中的个数
        if (checknum == $('.j-checkbox').length) {
            $('.checkall').prop('checked', true);
        } else {
            $('.checkall').prop('checked', false);
        }
        // 选中商品修改背景色  (用三元表达式)
        $(this).prop('checked') ? $(this).parents('.cart-item').addClass('check-cart-item') : $(this).parents('.cart-item').removeClass('check-cart-item');
    })

    // 点击增减商品
    // 增
    $('.increment').click(function () {
        let val = $(this).siblings('input').val();
        if (val == 99) {
            alert('什么家庭啊买这么多！')
        } else {
            // 变化input值
            $(this).siblings('input').val(++val);
            // 变化小计
            let price = $(this).parents('.p-num').siblings('.p-price').text().substr(1);
            $(this).parents('.p-num').siblings('.p-sum').text('￥' + (val * price).toFixed(2));
        }
    })
    // 减
    $('.decrement').click(function () {
        let val = $(this).siblings('input').val();
        if (val == 1) {
            alert('都减没了你还怎么买！');
        } else {
            // 变化input值
            $(this).siblings('input').val(--val);
            // 变化小计
            let price = $(this).parents('.p-num').siblings('.p-price').text().substr(1);
            $(this).parents('.p-num').siblings('.p-sum').text('￥' + (val * price).toFixed(2));
        }
    })

    // input修改商品个数 --> 改变小计
    $('.itxt').change(function () {
        let val = $(this).val();
        let price = $(this).parents('.p-num').siblings('.p-price').text().substr(1);
        if (val < 1) {
            $(this).val(1);
        } else if (val > 99) {
            $(this).val(99);
        }
        val = $(this).val();
        $(this).parents('.p-num').siblings('.p-sum').text('￥' + (val * price).toFixed(2));
    })

    // 操作删除商品
    $('.p-action').click(function () {
        if ($(this).siblings('.p-checkbox').children('.j-checkbox').prop('checked')) {
            // 减去删除商品的数量和小计
            let price = $(this).siblings('.p-sum').text().substr(1);
            let num = $(this).siblings('.p-num').find('.itxt').val();
            priceSum = (priceSum - price) == 0 ? (priceSum - price) : (priceSum - price).toFixed(2);
            numSum -= num;
            $('.price-sum').children('em').text(priceSum);
            $('.amount-sum').children('em').text(numSum);
        }
        // 删除该商品
        $(this).parents('.cart-item').remove();
    })

    // 清理购物车
    $('.clear-all').click(function () {
        $('.cart-item').remove();
    })

    // 删除选中商品
    $('.remove-batch').click(function () {
        $('.j-checkbox:checked').parents('.cart-item').remove();
    })

    // 1.改变 小复选框 或 全选 或 输入框，商品数量和总价发生变化
    $('.j-checkbox, .checkall, .itxt').change(function () {
        if ($('.j-checkbox:checked').length != 0) {
            getSum(1);
        } else {
            getSum();
        }
    })

    // 2.点击增减，商品数量和总价发生变化
    $('.increment, .decrement').click(function () {
        if ($(this).parents('.cart-item').find('.j-checkbox').prop('checked')) {
            getSum(1);
        }
    })

    // 3.点击 删除选中商品 或 清空购物车，商品数量和总价发生变化
    $('.remove-batch, .clear-all').click(function () {
        getSum();
    })
})
